package day5.cal;

import org.junit.Test;

public class CalDemo {

    public static void main(String[] args) {
        Add add = new Add(3, 5);
        int result1 = add.getResult();
        System.out.println(result1);

        Sub sub = new Sub(3, 5);
        int result2 = sub.getResult();
        System.out.println(result2);
    }

    @Test
    public void test1() {
        // 声明成子类类型，new子类对象
        // 如果子类重写了getResult方法，那么调用的是子类重写后的方法
        // 如果子类没有重写，调用的就是从父类继承的
        Add add = new Add(3, 2);
        int result1 = add.getResult();
        System.out.println(result1);

        // 声明成父类类型，new子类对象
        // 如果子类重写了getResult方法，那么调用的是子类重写后的方法
        // 如果子类没有重写，调用的就是从父类继承的
        Cal cal = new Add(3, 2);
        int result2 = cal.getResult();
        System.out.println(result2);

        // cal声明成父类类型，new出来的任何子类对象都可以赋值给这个变量
        cal = new Sub(3, 2);
        int result3 = cal.getResult();
        System.out.println(result3);// 1
    }

    public void fun(Add add) {
        add.getResult();
    }
    public void fun(Cal cal) {
        cal.getResult();
    }
}
